/**
 *
 */
package com.midea.ai.air.utils;

import android.text.TextUtils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * String 工具类
 *
 * @author QiuDa
 */
public class StringUtil {
    private static final String TAG = "StringUtil";

    /**
     * 删除BOM字符
     *
     * @param data
     * @return
     */
    public static final String removeBOM(String data) {
        if (isNullorEmpty(data)) {
            return data;
        }

        if (data.startsWith("\ufeff")) {
            return data.substring(1);
        } else {
            return data;
        }
    }

    public static boolean isNullorEmpty(String str) {
        if (str == null || "".equals(str)) {
            return true;
        }
        return false;
    }

    /**
     * 验证手机格式
     */
    public static boolean isMobileNO(String mobiles) {

        // 移动：134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
        // 联通：130、131、132、152、155、156、185、186 \n 电信：133、153、180、189、（1349卫通）
        // 总结起来就是第一位必定为1，第二位必定为3或5或8，其他位置的可以为0-9
        String telRegex = "[1][34578]\\d{9}";// "[1]"代表第1位为数字1，"[358]"代表第二位可以为3、5、8中的一个，"\\d{9}"代表后面是可以是0～9的数字，有9位。
        if (TextUtils.isEmpty(mobiles)) {
            return false;
        } else {
            return mobiles.matches(telRegex);
        }
    }

    /**
     * [\u4e00-\u9fa5] //匹配中文字符^[1-9]\d*$ //匹配正整数^[A-Za-z]+$
     * //匹配由26个英文字母组成的字符串^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串^[a-z]+$
     * //匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
     *
     * @return false 不符合 true 符合
     * @描述 验证输入密码是否符合规范
     */
    public static boolean isPwdlegally(String mPassWord) {
        String pwdRegex = "[A-Za-z0-9]*";
        if (mPassWord.matches(pwdRegex)) {
            return true;
        }
        return false;

    }

    /**
     * 判断目标时间是否大于当前时间
     *
     * @param dateStr 目标时间
     * @return
     */
    public static boolean greaterThanCurDate(String dateStr) {
        long time = System.currentTimeMillis();
        SimpleDateFormat formater = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");
        try {
            Date date = formater.parse(dateStr);
            if (time < date.getTime()) {
                return true;
            } else {
                return false;
            }
        } catch (Exception e) {
            L.e( TAG, e);
        }
        return false;
    }

    /**
     * 将手机号码中间4位改为*号
     *
     * @param mobile 手机号码
     * @return
     */
    public static String encryptMobile(String mobile) {
        if (!StringUtil.isNullorEmpty(mobile) && mobile.length() > 4) {
            int length = mobile.length();
            String encryMobileEnd = mobile.substring(length - 4, length);
            String encryMobileStart = "";
            if (length - 8 > 0) {
                encryMobileStart = mobile.substring(0, length - 8);
            }
            return encryMobileStart + "****" + encryMobileEnd;
        }
        return mobile;
    }
}
